/* Ο κώδικας αυτός δημιουργήθηκε ειδικά για την εφαρμογή
	-= Ανάλυση Δεδομένων Εντύπου Σήμανσης CE =- του blog 
	"Τα Πάντα για τα Κουφώματα" http://koufomata-expert.blogspot.com
	Version 0.9, 20120209
*/

var dataArray= new Array();
/* Ο αριθμός πίνακας ταυτίζεται με την ταχύτητα του άερα στην κλίμακα Μποφόρ,
	η πρώτη στήλη του πίνακα έχει τις ελάχιστες τιμές ενώ η δεύτερη έχεις 
	τις μέγιστες τιμές πίεσης που αντιστοιχούν στην	δεδομένη κλίμακα Μποφόρ,
	ενώ η τρίτη έχει την ονομασία του ανέμου. */
dataArray[0]=[0,0,"Νηνεμία"];
dataArray[1]=[0,2,"Υποπνέων"];
dataArray[2]=[2,7,"Ασθενής"];
dataArray[3]=[7,18,"Λεπτός"];
dataArray[4]=[18,39,"Μέτριος"];
dataArray[5]=[39,72,"Λαμπρός"];
dataArray[6]=[72,119,"Ισχυρός"];
dataArray[7]=[119,184,"Σφοδρός"];
dataArray[8]=[184,269,"Θυελλώδης"];
dataArray[9]=[269,373,"Θύελλα"];
dataArray[10]=[373,505,"Ισχυρή Θύελλα"];
dataArray[11]=[505,665,"Σφοδρή Θύελλα"];
dataArray[12]=[665,851,"Τυφώνας"];

/* Πίνακες με στοιχείων προς αντιστοίχηση.
	Οι τιμές -1 είναι για να ενεργοποιούν άλλες καταστάσεις,
	όπου οι τιμές θα δίνονται από κάποιο πεδίο.
*/
var WaterResistans=[0,50,100,150,200,250,1300,450,600,-1];
var AirResist=[400,800,1200,1600,2000,-1];
var AirPass=[150,300,600,600];

function DoAnalysis(formID)
{
	try {
		var txt="<ul>";
		var WindVel= new Array(3);
		var myForm=document.getElementById(formID);

		var width=parseFloat(myForm.elements[0].value);
		var height=parseFloat(myForm.elements[1].value);
		var x=parseInt(myForm.elements[2].value);
		var y=WaterResistans[parseInt(myForm.elements[3].value)];
		if (y==-1) {
			y=parseInt(myForm.elements[4].value);
		}
		var z=parseInt(myForm.elements[5].value);
		var k=AirResist[parseInt(myForm.elements[6].value)];
		if (k==-1) {
			k=parseInt(myForm.elements[7].value);
		}
		var Uvalue=parseFloat(myForm.elements[8].value);

		if (isNaN(width+height+y+k)) {
			document.getElementById("results").innerHTML="<font color='red'><br /><b>Λάθος.</b> Σε κάποιο από τα πεδία που δέχεται αριθμούς έχετε γράψει γράμματα ή το έχετε αφήσει κενό.</font>";
			return;
		}

		var s=(width*height).toFixed(3);
		txt+="<li>Το εμβαδόν του κουφώματος είναι "+s+"m<sup>2</sup></li>";
		txt+="<li>Αεροδιαπερατότητα "+x+"m<sup>3</sup>/(h&sdot;m<sup>2</sup>) ή "+(x/4.0)+"m<sup>3</sup>/(h&sdot;m). ";
		txt+="Η ροή του αέρα μέσα από το κούφωμα όταν αυτό είναι κλειστό και υπάρχει διαφορά πίεσης 100Pa είναι "+(s*x).toFixed(3)+"m<sup>3</sup>/h. ";

		var j;
		switch(x) {
			case 50: j=AirPass[0]; break;
			case 27: j=AirPass[1]; break;
			case 9: j=AirPass[2]; break;
			case 3: j=AirPass[3]; break;
		}
		for (var i=0;i<dataArray.length;i++) {
			if (j>=dataArray[i][0] && j<dataArray[i][1]) {
				txt+="Το κούφωμα δοκιμάστηκε μέχρι και ταχύτητα ανέμου "+i+" Μποφόρ. Ονομασία έντασης ανέμου: "+dataArray[i][2]+"</li>";
				WindVel[0]=i;
			}
		}


		for (var i=0;i<dataArray.length;i++) {
			if (y>=dataArray[i][0] && y<dataArray[i][1]) {
				txt+="<li>Απώλεια Υδατοστεγανότητας του κουφώματος παρουσιάστηκε στα "+i+" Μποφόρ. Ονομασία έντασης ανέμου: "+dataArray[i][2]+"</li>";
				WindVel[1]=i;
			}
		}
		if (y>dataArray[dataArray.length-1][1]) {
			txt+="<li>Απώλεια Υδατοστεγανότητας του κουφώματος παρουσιάστηκε πάνω από τα "+(i-1)+" Μποφόρ</li>"
			WindVel[1]=i-1;
		}

		txt+="<li>Αντοχή στην Ανεμοπίεση, παρουσιάζεται βέλος κάμψης ";
		switch(z) {
			case 2:txt+="1/300 "; break;
			case 1:txt+="1/200 "; break;
			case 0:txt+="1/150 "; break;
		}
		for (var i=0;i<dataArray.length;i++) {
			if (k>=dataArray[i][0] && k<dataArray[i][1]) {
				txt+="για ταχύτητα ανέμου "+i+" Μποφόρ. Ονομασία έντασης ανέμου: "+dataArray[i][2]+"</div>";
				WindVel[2]=i;
			}
		}
		if (k>dataArray[dataArray.length-1][1]) {
			txt+="για ταχύτητα ανέμου μεγαλύτερη από "+(i-1)+" Μποφόρ</li>";
			WindVel[2]=i-1;
		}

		if (!isNaN(Uvalue))
			txt+="<li>Η ροή θερμότητας μέσα από το παρόν κούφωμα είναι "+(s*Uvalue).toFixed(3)+"W/K</li>";

		txt+="<li>Το κούφωμα θα παρουσιάσει τα πρώτα προβλήματα για ταχύτητα ανέμου "+Math.min(WindVel[0],WindVel[1],WindVel[2])+" Μποφόρ</li></ul>";
     txt+="<div style='font-size:small;'><a href=\"http://koufomata-expert.blogspot.com\">koufomata-expert.blogspot.com</a></div>"
		document.getElementById("results").innerHTML=txt;
	}
	catch (err) {
		alert(err);
	}
}

// Η συνάρτηση ελέγχει και ενεργοποιεί το κατάλληλο πεδίο.
function CheckToEnable(thisObj,EnObjID)
{
	if (document.getElementById(thisObj).length==document.getElementById(thisObj).selectedIndex+1)
		document.getElementById(EnObjID).disabled=false;
	else
		document.getElementById(EnObjID).disabled=true;
}

// Η συνάρτηση κάνει ένα πρώτο έλεγχο εγκυρότητας των πεδίων δεδομένων.
function CheckIfNum(thisObj)
{
	if (document.getElementById(thisObj).value=="") {
		alert("Λάθος. Αφήσατε κενό το πεδίο που μόλις αλλάξατε.");
	}
	else if (isNaN(document.getElementById(thisObj).value)) {
		alert("Λάθος. Το πεδίο που μόλις αλλάξατε δέχεται μόνο αριθμούς.");
	}
}
